Equality for Prolog
نویسنده
چکیده
The language Prolog has been extended by allowing the in clusion of assertions about equality. When a unification of two terms that do not unify syntactically is attempted, an equality theorem may be used to prove the two terms equal. If it is possible to prove that the two terms are equal the unification succeeds with the variable bindings introduced by the equality proof. It is shown that this mechanism significantly improves the power of Prolog. Sophisticated data abstraction with all the advantages of object-oriented programming is available. Techniques for passing partially instantiated data are described that extends the "multi-use" capabilities of the language, improve the efficiency of some programs, and allow the implementation of arith metic relations that are both general and efficient. The modifications to standard Prolog are simple and straightfor ward and in addition the computational overhead for the extra linguistic power is not significant. Equality theorems will probably play an important role in future logic programming systems.
منابع مشابه
Comments on Kornfeld's Equality for Prolog: E-Unification as a Mechanism for Augmenting the Prolog Search Strategy
The search strategy of standard Prolog can lead to a situation in which a predicate has to be evaluated in circumstances where it has an infeasibly large number of instantiations. The work by Kornfeld [8] addressed this important problem by means of an extension of unification which allows Prolog to be augmented by what is essentially a (non-standard) equality theory. This paper uses the notion...
متن کاملImagining Clp(, )
We study under which conditions the domain of-terms () and the equality theory of the-calculus () form the basis of a usable constraint logic programming language (CLP). The conditions are that the equality theory must contain axiom , and the formula language must depart from Horn clauses and accept universal quantiications and implications in goals. In short, CLP(,) must be close to Prolog.
متن کاملA Transformation Based on the Equality between Terms
We present a new transformation of Prolog programs preserving operational equivalence. Our transformation — EBC (equality based continuation) transformation — relies on the introduction of equations between terms. These equations are used to introduce alternative and more efficient representations of terms. When applied to binary Prolog programs, EBC is able to perform the following optimizatio...
متن کاملBousi~Prolog: a Prolog Extension Language for Flexible Query Answering
In this paper we present the main features an implementation details of a programming language that we call Bousi∼Prolog. It can be seen as an extension of Prolog able to deal with similarity-based fuzzy unification (“Bousi” is the Spanish acronym for “fuzzy unification by similarity”). The main goal is the implementation of a declarative programming language well suited for flexible query answ...
متن کاملTablog: Functional and Relational Programming in One Framework
Tablog12 is a logic programming ing languages, given their emphasis on A program in Tablog is a list of forlanguage that combines functional and using predicates to describe computamulas in quantifier-free, first-order relational programming into a unified tions. logic with equality and is usually more framework. It incorporates advanAn even broader definition of the natural than the correspond...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1983